package cn.south.campus.admin.campus.model.vo;

import cn.south.campus.admin.campus.model.entity.PartTimeJob;
import cn.south.campus.common.model.vo.BaseVO;
import cn.south.campus.common.utils.DateUtil;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

/**
 * <p>
 *
 * </p>
 *
 * @author chow
 * @since 2025/3/27 14:12
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class PartTimeJobVo extends BaseVO {
    /**
     * 标题
     */
    @NotBlank(message = "标题不能为空")
    private String title;

    /**
     * 内容
     */
    @NotBlank(message = "内容不能为空")
    private String content;

    /**
     * 薪资
     */
    @NotBlank(message = "薪资不能为空")
    private String salary;

    /**
     * 招聘人数
     */
    @NotNull(message = "招聘人数不能为空")
    private Integer count;

    /**
     * 工作时间
     */
    @NotBlank(message = "工作时间不能为空")
    private String workTime;

    /**
     * 工作地址
     */
    @NotBlank(message = "工作地址不能为空")
    private String workAddress;

    /**
     * 联系方式
     */
    @NotBlank(message = "联系方式不能为空")
    private String contact;

    /**
     * 状态,1已发布，2已结束
     */
    private Integer status;

    /**
     * 发布时间
     */
    private String publishTime;

    /**
     * 备注
     */
    private String remark;

    public static PartTimeJobVo convert(PartTimeJob partTimeJob) {
        if (partTimeJob == null) {
            return null;
        }
        PartTimeJobVo partTimeJobVo = new PartTimeJobVo();
        partTimeJobVo.setId(partTimeJob.getId());
        partTimeJobVo.setTitle(partTimeJob.getTitle());
        partTimeJobVo.setContent(partTimeJob.getContent());
        partTimeJobVo.setSalary(partTimeJob.getSalary());
        partTimeJobVo.setCount(partTimeJob.getCount());
        partTimeJobVo.setWorkTime(partTimeJob.getWorkTime());
        partTimeJobVo.setWorkAddress(partTimeJob.getWorkAddress());
        partTimeJobVo.setContact(partTimeJob.getContact());
        partTimeJobVo.setStatus(partTimeJob.getStatus());
        partTimeJobVo.setPublishTime(DateUtil.format(partTimeJob.getPublishTime()));
        partTimeJobVo.setRemark(partTimeJob.getRemark());
        return partTimeJobVo;
    }

    public static PartTimeJob convert(PartTimeJobVo partTimeJobVo) {
        if (partTimeJobVo == null) {
            return null;
        }
        PartTimeJob partTimeJob = new PartTimeJob();
        partTimeJob.setId(partTimeJobVo.getId());
        partTimeJob.setTitle(partTimeJobVo.getTitle());
        partTimeJob.setContent(partTimeJobVo.getContent());
        partTimeJob.setSalary(partTimeJobVo.getSalary());
        partTimeJob.setCount(partTimeJobVo.getCount());
        partTimeJob.setWorkTime(partTimeJobVo.getWorkTime());
        partTimeJob.setWorkAddress(partTimeJobVo.getWorkAddress());
        partTimeJob.setContact(partTimeJobVo.getContact());
        partTimeJob.setRemark(partTimeJobVo.getRemark());
        return partTimeJob;
    }
}
